In a multi-processing computing environment, a first process can request that a second process perform work on behalf of the first process. The second process can further request that a third process perform work on behalf of the first process. In an example, a first process may be an email process. A user may be viewing an email representing a Facebook® friend request notification, the email having an embedded link for the user to accept the friend request. The user can then click on the embedded link in the email, triggering a call to the second process to launch a web browser using the link. The third process may be an application at the link, such as a Facebook® application, that is launched within the browser. A response from the Facebook® application may include a message to the user that the friend request has been successfully accepted. The response message can be passed from the third process to the second process, and in turn passed from the second process to the first process for further processing, such as displaying the message to the user.
In the above example, a response back to the first process is not guaranteed. Because the third process passes a response to the first process via the second process, the first process will not receive a response if the second process is no longer running. Further, the third process may never return a response if it cannot complete the work to be performed for the first process. For example, if the third process is a Facebook® server that launches the Facebook® application, the first process will never receive a response if the Facebook® server is down. Thus, in both cases, the first process will never receive a response from the user clicking on the link in the email.